/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Velha;

/**
 *
 * @author NootFer
 */
public class tabuleiro {
    private String[][] matrizTabuleiro;
    private jogador jogador_A;
    private jogador jogador_B;
    private String resultado;
    private int numeroJogadas;
    
    public tabuleiro(jogador jogador_A, jogador jogador_B){
        this.jogador_A = jogador_A;
        this.jogador_B = jogador_B;
        this.numeroJogadas = 0;
        this.resultado = null;
        matrizTabuleiro = new String[3][3];
        for(int i=0;i<3;i++)for(int j=0;j<3;j++)matrizTabuleiro[i][j]=null;
    }
    
    public boolean ehPossivelNovaJogada(){
        if(this.numeroJogadas>7)return false;
        return true;
    }
    public boolean procuraAlinhamento(String ultimoQueJogou){
        //if(this.numeroJogadas<=5)return false;
        boolean houveAlinhamento = true;//Variável flag de controle
        
        //Diagonais - Teste de alinhamento nas diagonais
        for(int i=0;i<3;i++)if( matrizTabuleiro[i][i]==null || !matrizTabuleiro[i][i].equals(ultimoQueJogou) ){//Verifica diagonal principal
            houveAlinhamento=false;
            break;
        }
        if(houveAlinhamento)return true;
        else houveAlinhamento = true;
        if( (matrizTabuleiro[0][2]==null || matrizTabuleiro[1][1]==null || matrizTabuleiro[2][0]==null) ||
            (!matrizTabuleiro[0][2].equals(ultimoQueJogou) ||
             !matrizTabuleiro[1][1].equals(ultimoQueJogou) ||
             !matrizTabuleiro[2][0].equals(ultimoQueJogou) ) ){//Verifica diagonal secundária
            houveAlinhamento=false;
        }
        if(houveAlinhamento)return true;
        else houveAlinhamento = true;
        
        //Linhas - Teste de alinhamento nas linhas
        for(int i=0;i<3;i++){
            for(int j=0;j<3;j++) if( matrizTabuleiro[i][j]==null || !matrizTabuleiro[i][j].equals(ultimoQueJogou) )houveAlinhamento=false;
            if(houveAlinhamento)return true;
            else houveAlinhamento = true;
        }
        //Colunas - Teste de alinhamento nas colunas
        for(int i=0;i<3;i++){
            for(int j=0;j<3;j++) if( matrizTabuleiro[j][i]==null || !matrizTabuleiro[j][i].equals(ultimoQueJogou) )houveAlinhamento=false;
            if(houveAlinhamento)return true;
            else houveAlinhamento = true;
        }
        return false;
    }    
    public void setResultado(String resultado){
        this.resultado = resultado;
    }
    public String getResultado(){
        return this.resultado;
    }
    public void addJogada(){
        this.numeroJogadas++;
    }
    public int getNumeroJogadas(){
        return this.numeroJogadas;
    }
    public void setMatrizTabuleiro(int i, int j, String conteudo){
        this.matrizTabuleiro[i][j] = conteudo;
    }
    public String getMatrizTabuleiro(int i, int j){
        return this.matrizTabuleiro[i][j];
    }
}
